iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
DevOps

建立應用程式 UI 自動化測試 - 以 Robot Framework 為例系列 第 21

[21] Robot Framework 結合 Appium 進行 App 自動化測試 - Appium Android 環境安裝

  • 分享至 

  • xImage
  •  

在這個章節我們將手把手帶大家一起將 Appium Android 的環境安裝完成。

但是在開始安裝前,我們還是需要先知道其運作的原理,如下圖所示,Appium Server 會與 UiAutomator2 的 Driver 做溝通,UiAutomator2 Driver 會呼叫到 UiAutomator2 server,再去呼叫 UiAutomator2 在裝置上執行操作,如此長的流程也是 Appium 令人詬病的原因,中間只要有一個步驟斷了,便會影響到測試的進行。
https://ithelp.ithome.com.tw/upload/images/20240930/20168859yG4fkL4eX8.png

至於什麼是 UiAutomator 呢?UiAutomator 是 Google 提供用來執行 Android 自動化測試的一個 Library,基於 Accessibility 的服務,可以在不對 App 做侵入式埋程式碼的情況下,對任一 App 進行測試,定且進行像是點擊按鈕、滾動畫面、輸入文字等行為。

手把手環境安裝

安裝 JDK:

Appium 在 Android 測試依賴於 Java 開發套件(JDK)來運行,因此我們需要先安裝 JDK。

  1. 首先先前網下載的網頁 https://www.oracle.com/tw/java/technologies/downloads/
  2. 選擇作業系統,這邊以 Mac 為例
    • 若為 Mac M1 架構,請選擇 mac OS > Arm 64 DMG Installer
    • 若為 Mac Intel 架構,請選擇 macOS > x64 DMG Installer

安裝 Android Studio 及設定

這邊會需要安裝 Android Studio 是因為這可以讓我們很方便的取得 Android SDK,並且在後續的開發中,我們如果要透過模擬機來進行測試的話,也需要先下載 Android Studio,步驟可以參考下方:

  1. 安裝 Android Studio :https://developer.android.com/studio?hl=zh-tw
  2. 設定 SDK manager:安裝後我們需要設定 SDK manager (下面的詳細步驟有可能會因為 Android Studio 版本不同而有所差異)
    1. 點擊 "More Actions"
    2. 選擇 "SDK Manager"
    3. 左方導航欄選擇 "Android SDK"
    4. 右方選擇 "SDK Tools"
    5. 安裝下圖有打勾的工具
      https://ithelp.ithome.com.tw/upload/images/20240930/20168859hNtcKrSw64.png
    6. 設定 ANDROID_HOME 及 JAVA_HOME,JAVA_HOME 的位置可以透過在終端機輸入 where Java 的指令來取得,ANDROID_HOME 可以在 Android Studio SDK 管理員中找到目錄的路徑,通常都會安裝在 /Users/{USER_NAME}/Library/Android/sdk 這裡,接著我們將這兩個變數寫入環境變數中,
    export ANDROID_HOME="/Users/{USER_NAME}/Library/Android/sdk"
    export JAVA_HOME="/usr/bin/Java"
    export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools"
    
  3. 安裝後我們可以透過在終端機輸入 adb devices 這個指令來看看有沒有設定成功,如果在沒有連接裝置的情況下出現 List of devices attached,那麼恭喜你!安裝成功,可以喘口氣,讓下個步驟邁進!

安裝 Python

由於我們是透過 Robot Framework 來進行測試,因此這邊需要先安裝 python ,python 的安裝可以到官網下載:https://www.python.org/downloads/ ,安裝後如果需要確認 python 已經安裝完成,可以透過 python -v 來做確認。

python3 -V
# Python 3.12.5

安裝 Node.js

由於 appium 是基於 node.js 進行開發的,因此我們需要先安裝 Node.js 的環境,環境請參考 官方網站 安裝,appium 官方建議透過 LTS 的方式安裝。

安裝後可以透過以下指令檢查安裝是否成功:

node -v
# v20.17.0

npm -v  
# 10.8.2

安裝 appium

Appium 可以使用以下指令進行全域安裝npm

npm install -g appium

如果大家有看到其他文章會下載一個像是下圖的 Appium Desktop 的化,需要注意這是 Appium 1.x 版吧工具,在 appium2 時這個已經被淘汰囉,我們可以看到在 Github 上 Repository 已經被 archived 囉。https://github.com/appium/appium-desktop
https://ithelp.ithome.com.tw/upload/images/20240930/20168859aWlBi3IQ4R.png

在這邊也需要注意 appium 對於安裝上還是有些限制的,像是對於 node 版本的支援,這邊會是個大坑,過去筆者在開發自動化測試時,經常會遇到升級 appium 後測試就不動啦,很高機率是因爲版本不支援的關係,需要抽絲剝繭找出衝突的版本,關於 appium 的限制,可以參考官方網站:https://appium.io/docs/en/latest/quickstart/requirements/

安裝後我們可以透過在終端機輸入 appium 來啟動 appium server,輸入後如果有在終端機上看到 像是下方展示的 appium 執行的 log 的話表示安裝成功囉!

➜  ~ appium
[Appium] Welcome to Appium v2.11.3
[Appium] The autodetected Appium home path: /Users/max/.appium
[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
	http://127.0.0.1:4723/ (only accessible from the same host)
	http://192.168.22.48:4723/
[Appium] No drivers have been installed in /Users/max/.appium. Use the "appium driver" command to install the one(s) you want to use.
[Appium] No plugins have been installed. Use the "appium plugin" command to install the one(s) you want to use.

安裝 UiAutomator2 Driver

還記得前面幾個章節提到的概念嗎?在 appium 開始,appium 將 appium server 及 appium driver 切開,如此一來可以安裝該次測試需要測試的 driver 即可,因此我們需要安裝 android 測試時需要使用的 UiAutomator2,安裝之前請先確認 Appium 伺服器未運行(如果正在運行,請使用Ctrl-C退出)。然後運行以下命令:

appium driver install uiautomator2

安裝成功後會顯示以下訊息:

✔ Checking if 'appium-uiautomator2-driver' is compatible
✔ Installing 'uiautomator2' using NPM install spec 'appium-uiautomator2-driver'
ℹ Driver uiautomator2@3.7.7 successfully installed
- automationName: UiAutomator2
- platformNames: ["Android"]

結語

到這邊我們已經完成 Appium Android 的環境安裝囉,恭喜!有時候設定開發環境比寫程式來的枯燥乏味許多,成功安裝後可以站起來走走、眺望遠方,休息一下,讓我們繼續一起往下個章節出發!


上一篇
[20] Robot Framework 結合 Appium 進行 App 自動化測試 - 認識 Appium
下一篇
[22] Robot Framework 結合 Appium 進行 App 自動化測試 - Appium Inspector 安裝及操作介紹
系列文
建立應用程式 UI 自動化測試 - 以 Robot Framework 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言